/**    
 * @Description: 博客园地址：https://www.cnblogs.com/zumengjie/      
 * @author: 顶风少年   
 * @date: 2021年4月3日 下午11:57:26
 */

package datang.dtdb.type;

import java.util.HashMap;

import datang.dtdb.exceptions.TypeException;
import datang.dtdb.io.Resources;

/**
 * 类型转换器
 */
public class TypeAilasRegistry {
	private final HashMap<String, Class<?>> TYPE_ALIASES = new HashMap<>();

	/**
	 * 先从alias缓存中获取对应的类型，如果获取不到则根据name加载
	 */
	public Class<?> resolveAlias(String name) {
		if (name == null) {
			throw new TypeException("null无法的转换类型");
		}
		if (TYPE_ALIASES.containsKey(name)) {
			return TYPE_ALIASES.get(name);
		}
		try {
			return Resources.classForName(name);
		} catch (ClassNotFoundException e) {
			throw new TypeException(name + "加载类失败");
		}
	}

}
